import Immutable from 'immutable';
import Cursor from 'immutable-cursor';
// let a = Map({
//   name: 'aaa',
//   filter: Map({
//     age: 18
//   })
// });
//
// let b = a.set('name', 'bbb');
//
// console.log(a === b);
// console.log(a.get('filter') === b.get());
// let map1 = Immutable.Map({a: 1, b: 1, c: 1});
// let map2 = Immutable.Map({a: 1, b: 1, c: 1});
//
// console.log(map1 === map2);
// console.log(Immutable.is(map1, map2));

// let data = Immutable.fromJS({a: {b: {c: 1, d: {e: 2}}}});
// // 让 cursor 指向 {c: 1}
// let cursor = Cursor.from(data, ['a', 'b'], newData => {
//   // 当 cursor 或其子 cursor 执行更新时调用
//   console.log(newData);
// });
//
// // console.log(Cursor.from)
//
// console.log(cursor.get('d').get('e'));
//
// // cursor = cursor.update('c', x => x + 1);
// //
// // console.log(cursor.get('c'));

let data = Immutable.fromJS(
  {
    a: {
      b: {
        c: 2
      }
    }
  }
);

let cursor = Cursor.from(data, ['a', 'b'], newData => {
  console.log(newData);
});

console.log(cursor.get('c'));

cursor = cursor.update('c', x => x * 2);

console.log(cursor.get('c'));
